/*
    开发中制作登录和保存用户信息在本地使用cookie
    上下文ctx提供读取和写入的方法
    ctx.cookies.get(name,[options]) 和 ctx.cookies.set(name,value,[options])
    [options](对象) => cookie选项
    {
        domain : 写入cookie所在的域名,
        path : 写入cookie所在的路径,
        maxAge : cookie最大有效时长(秒),
        expires : cookie失效时间,
        httpOnly : 是否只用http请求获得,
        overwrite: 是否允许重写
    }
*/

const Koa = require('koa');

const app = new Koa();

app.use(async ctx => {
    if (ctx.url === '/setCookie') {
        ctx.cookies.set('userName','levy',{
            domain:'127.0.0.1', // 写cookie所在的域名
            path:'/index',       // 写cookie所在的路径
            maxAge:1000*60*60*24,   // cookie有效时长
            expires:new Date('2018-12-31'), // cookie失效时间
            httpOnly:false,  // 是否只用于http请求中获取
            overwrite:false  // 是否允许重写
        });
        ctx.body = 'cookie is setted already';
    } else {
        if (ctx.cookies.get('userName')) {
            ctx.body = ctx.cookies.get('userName');
        } else {
            ctx.body = 'Can not get cookie';
        }
    }
});

app.listen(3000, () => {
    console.log('[Server] is running at port 3000 .');
});